<?php
/*

Как вызывать логику через аякс?
1) Можно непосредственно обращаться к контроллерам.
2) Можно создавать второй образ движка с подключением смарти и т.д. и работать через него. 
Например, это надо для рендеринга шаблонов.


В первом случае запускать так: core/<имя контроллера - файла и класса>/<имя экшена>

$.post(basic_path + '/core/login/signin',
              {login:'admin', pass:'admin'},
              function(data){
                  if(data.responcestatus == 'ok'){
                      console.log( data.responcestatus)
                  }
          }, "json");

Если нужно использовать логику модуля, нужно юзать второй вариант. 
Вариант запуска для второго случая: 


[!] Можно наследовать вспомогательные контролллеры от класса-прослойки, если понадобится для всех их сделать общую функциональность

json_last_error 
*/
/*

        $result = array(

            "records" => "88",
            "page" => 1,
            "total" => 2,
            "rows" =>  array(
                0 => array(
                    "CustomerID" => "Панов",
                    "CompanyName" => "Alfreds Futterkiste",
                    "Phone" => "030-0074321",
                    "PostalCode" => "12209",
                    "Country" => "Germany",
                    "City" => "Berlin"
                ),
                1 => array(
                    "CustomerID" => "русские",
                    "CompanyName" => "Ana Trujillo Emparedados y helados",
                    "Phone" => "(5) 555-4729",
                    "PostalCode" => "050216",
                    "Country" => "Mexico",
                    "City" => "M\u0413\u00a9xico D.F."
                ),

                "userdata": {
                        "title": "Das ist der Titel bestimmt beim Server",
                        "columnNames": {
                            "CustomerID": "Die Name",
                            "CompanyName": "Die E-Mail",
                            "Phone": "Die E-Mail",
                            "PostalCode": "Die E-Mail",
                            "Country": "Die E-Mail",
                            "City": "Die E-Mail"
                            }
                        }

            )
        );



$result = array(
    'page' => 1,
    'records' => 1,
    'total' => 1,
    'rows' => array(
        0 => array(
            'cell' => array(
                0 => 'asd',
                1 => 'asd',
                2 => 'asd',
                3 => 'asd',
            ),
            'id' => 128
        ),

    ),

);
*/



class LoginController extends coreController{



    function __construct ($persistent = false){


    } // --


    function zxcAction(){

        $r = "
                <select>
                   <option value='asd'>asd</option>
                </select>
        ";

        echo $r;
    }

    function signinAction(){




        $data = null;
        $error = null;
        $message = null;
        $responcestatus = 'ok';

        $login = $_POST['login'];
        $pass = $_POST['pass'];

        // валидация
        // doSecure(&$login)

        // поиск в базе
        if( ($user_exists = User::isUserExists($login, $pass)) === true){
            $User = new User($login, $pass);
            $User->processUser();


        } else {

            $responcestatus = 'failed';
        }

        // ответ




        //fb($_SESSION['user']->name);




        $result = array('responcestatus' => $responcestatus );


        $this->json($result);

        return null;
    } // --

    function signoutAction(){

        $data = null;
        $error = null;
        $message = null;
        $responcestatus = 'ok';

        User::unProcessUser();

        $result = array('responcestatus' => $responcestatus );

        $this->json($result);

        session_destroy();

        return null;

    } // --































}